function main(){
	formFunctions();
	focusElement();
	jsonInit();
};


function focusElement(){
	// GET-Parameter holen -> type ist der Name, daher ist das zweite
	// Element im Array der Wert
	var type = window.location.search.replace("?", "").split("=")[1];
	
	// Kein Parameter oder 2 -> Login 
	if(type == undefined || type == "2"){
		document.forms['login'].elements['username_log'].focus();
	}
	// 1 oder andere -> Registrieren
	else{
		document.forms['register'].elements['vorname'].focus();
	}
}



function formFunctions(){
    // Form Wrapper
    var $form_wrapper = $("#form_wrapper");

    // Aktuell aktive Form
    var $currentForm = $form_wrapper.children("form.active");

    // Link zum wechseln der Form
    var $linkform = $form_wrapper.find(".linkform");

    
    $form_wrapper.children("form").each(function(i){
        var $thisForm = $(this);
        
		// Nicht aktive Form verstecken
        if(!$thisForm.hasClass("active")){
            $thisForm.hide();
        }

        // Der Form die benötigte Größe & benötigten Platz sichern
        $thisForm.data({width : $thisForm.width(), height : $thisForm.height()});
    });


    // Dem Form-Wrapper Höhe und Breite geben
    $form_wrapper.css({width: $currentForm.data("width") + "px",
                        height: $currentForm.data("height") + "px"});

    // Den "Wechsel-Links" eine Klick-Funktion zuweisen
    $linkform.bind("click", function(e){
    	// Link DOM
        var $link   = $(this);
        // Ziel(String)
        var target  = $link.attr("rel");
        
        // Aktuelle Form ausblenden
        $currentForm.fadeOut(400, function(){
        	// Aktuelle Form inaktiv
            $currentForm.removeClass("active");
            // Nächste Form ist aktuelle Form
            $currentForm = $form_wrapper.children("form." + target);
            
            // Größenwechsel animieren
            $form_wrapper.stop()
                         .animate({width: $currentForm.data("width") + "px",
                                   height: $currentForm.data("height") + "px"},
                                   500,
                                   // Neue Form aktiv setzen und einblenden
                                   function(){
                                     $currentForm.addClass("active");
                                     $currentForm.fadeIn(400);
                                     
                                     // Fokus verändern/aktualisieren
                                     if(target == "login"){
                                     	document.forms['login'].elements['username_log'].focus();
                                     }
                                     else{
                                         document.forms['register'].elements['vorname'].focus();
                                     }
                                   });
        });
        // Verhindern, dass der Link aufgerufen wird, sondern die Animation
        // abgespielt wird
        e.preventDefault();
    });
};


function jsonInit() {
	$("form.register input").keyup(function() {
		var name = $(this).get(0).name;
		var val	 = $(this).val();
		var passwort = null;
		
		// Wenn das passwort_wdh Feld verändert wurde, benötigt man auch dass passwort_reg zum Abgleich
		if(name == "passwort_wdh"){
			passwort = $("form.register input#passwort_reg").val();
		}
		
		$.post($("#contextPath").html() + "/validateRegister", 
			    {name: name, wert: val, passwort: passwort}, 
			    function(result){
					for (var i = 0; i < result.length; i++) {
						$("form.register #" + name + "Error").html(result[i]);
					}
				}
		);
	});
}

$(document).ready(main);